using System.ComponentModel;
using System.Runtime.Serialization;

namespace LeadTracker.Models
{

	[DataContract(Namespace = @"http://granite.codeplex.com/LeadTracker", Name = @"LeadStatus")]
	public enum LeadStatus
	{

		[EnumMember()]
		[Description(@"Proposed")]
		Proposed = 0,

		[EnumMember()]
		[Description(@"Claimed")]
		Claimed = 1,

		[EnumMember()]
		[Description(@"Ready for Review")]
		ReadyforReview = 2,

		[EnumMember()]
		[Description(@"Published")]
		Published = 3,


	}

	public static partial class LeadStatusExtension
	{
		public static string ToDescription(this LeadStatus value)
		{
			var result = ToDescription(value, null);
			if (result == null)
				throw new global::System.ArgumentOutOfRangeException("value");
			else
				return result;
		}

		public static string ToDescription(this LeadStatus value, string defaultValue)
		{
			switch (value)
			{
				case LeadStatus.Proposed: return @"Proposed";
				case LeadStatus.Claimed: return @"Claimed";
				case LeadStatus.ReadyforReview: return @"Ready for Review";
				case LeadStatus.Published: return @"Published";
				default: return defaultValue;
			}
		}
	}
}

